from selenium.webdriver.common.by import By

from common.Utils import BlogDriver

#博客的编辑页面

class BlogEdit:
    url = ""
    driver = ""
    def __init__(self):
        self.url = "博客编辑页面的网址"
        self.driver = BlogDriver.driver
        self.driver.get(self.url)

    #登录状态下，正确发布博客
    def EditSucByLoginText(self):
        #首先得找到标题输入框，输入标题
        self.driver.find_element(By.CSS_SELECTOR,"#标题输入框选择器").send_keys("标题")
        #然后得找到内容输入框，输入内容
        #因为md编辑器是第3方插件是不可以被选择的
        #self.driver.find_element(By.CSS_SELECTOR,"#内容输入框选择器").send_keys("内容")

        #但是编辑页面的菜单栏是可以点击的,点击菜单栏达到编辑区域不为空的目的
        # self.driver.find_element(By.CSS_SELECTOR,"菜单栏元素").click()

        #但是菜单栏的元素无法定位
        #博客系统的编辑区域本身就不未空，可以暂时不处理
        #再点击发布文章按钮
        self.driver.find_element(By.CSS_SELECTOR,"#发布文章按钮选择器").click()

        #time.sleep(2) 这里需要写强制等待才能找到，那么我们可以写成隐式等待
        #那么我们需要判断一下博客是否发布成功了呢
        #因为页面的跳转需要时间，代码执行的速度如果比页面渲染的速度快，就会导致找不到元素
        actual = self.driver.find_element(By.CSS_SELECTOR,"第一篇博客的标题").text
        assert actual == "刚才输入的标题"
        #如果是添加隐式等待的话，在创建driver对象之后就可以，因为隐式等待的作用域是整个生命周期
        #第二种方法屏幕截图
        BlogDriver.getScreeShot()
